import { customRef } from 'vue'

export default function (data: string) {
  let initValue = data
  let timer: number
  const msg = customRef((track, trigger) => {
    return {
      get() {
        // track:告诉vue数据msg很重要,需要持续关注,一旦变化就去更新
        track()
        return initValue
      },
      set(value) {
        timer && clearTimeout(timer)
        timer = setTimeout(() => {
          initValue = value
          // 通知Vue,数据变化了
          trigger()
        }, 1000)
      }
    }
  })
  return { msg }
}
